Typically, using an input and output device, such as an input and output “I/O” card (herein “card”), data can be exported to a peripheral for display to users. The card generally includes a microprocessor for processing any commands from the peripheral, memory (i.e. a computer storage medium or computer-readable medium) for storing the processes and data and an interface for communicating with the peripheral. The most common data displayed to the user is configuration data, such as a setting for the default paper size, relating to the peripheral.
However, in prior methods, the card could send only text strings, which are then displayed to the user by the peripheral. A string is a sequence of data values (e.g., bytes), which typically stand for characters (e.g., a “character string”). The mapping between values and characters is determined by the character set which is itself specified implicitly or explicitly by the environment in which the string is being interpreted. Because the strings in the prior method are limited to user readable text, the menu display and flexibility is greatly limited. In addition, since the peripheral is generally adapted to send only incremental commands, only one entry can be displayed at one time. As peripherals play a greater role in networking, it is becoming more common for the peripherals to be implemented with a server, resulting in a very long and complicated configuration menu. A typical menu would involve multiple pages, sections, subsections, and choices. With the limited use of text strings and incremental commands, the peripheral cannot display such complex menu without being a tedious task for the user, since only one entry can be displayed at a time. Furthermore, it would be difficult for the peripheral to recognize any menu structures that may be divided into pages, sections and subsection.